home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Amiga Plus 1995 #5 & #6
/
Amiga Plus CD - 1995 - No. 5 and 6.iso
/
pd
/
netz
/
term
/
extras
/
source
/
gtlayout-source.lha
/
LTP_DefaultHistoryHook.c
< prev
next >
Wrap
C/C++ Source or Header
|
1995-03-25
|
1KB
|
49 lines
/* GadTools layout toolkit
**
** Copyright © 1993-1995 by Olaf `Olsen' Barthel
** Freely distributable.
*/
#include "gtlayout_global.h"
ULONG __asm __saveds
LTP_DefaultHistoryHook(register __a0 struct Hook *Hook,register __a1 STRPTR NewString,register __a2 struct Gadget *Gadget)
{
ObjectNode *Node = (ObjectNode *)Gadget -> UserData;
struct LayoutHandle *Handle = Node -> Special . String . LayoutHandle;
struct MinList *List = (struct MinList *)Hook -> h_Data;
if(NewString)
{
ULONG *Data;
if(Data = (ULONG *)LTP_Alloc(Handle,sizeof(ULONG) + sizeof(struct Node) + strlen(NewString) + 1))
{
struct Node *NewNode;
*Data++ = sizeof(ULONG) + sizeof(struct Node) + strlen(NewString) + 1;
NewNode = (struct Node *)Data;
NewNode -> ln_Name = (STRPTR)(NewNode + 1);
strcpy(NewNode -> ln_Name,NewString);
AddTail((struct List *)List,NewNode);
}
else
return(FALSE);
}
else
{
if(List -> mlh_Head -> mln_Succ)
{
ULONG *Data = (ULONG *)RemHead((struct List *)List);
LTP_Free(Handle,&Data[-1],Data[-1]);
}
}
return(TRUE);
}